package org.zwy.gradetrack.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.zwy.gradetrack.entity.GraduationRequirementAchievement;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;

/**
 * 毕业要求达成度Service接口
 */
public interface GraduationRequirementAchievementService extends IService<GraduationRequirementAchievement> {
    /**
     * 计算综合评价值并判断是否达成
     * @param achievement 毕业要求达成度实体
     */
    void calculateComprehensiveScore(GraduationRequirementAchievement achievement);

    /**
     * 获取所有评价年份
     * @return 年份列表
     */
    List<Integer> getEvaluationYears();

    /**
     * 获取包含指标点名称的达成度VO列表
     * @param evaluationYear 评价年份
     * @return 达成度VO列表
     */
    List<org.zwy.gradetrack.vo.GraduationRequirementAchievementVo> getAchievementVos(Integer evaluationYear);

    /**
     * 导出Excel报表
     * @param evaluationYear 评价年份
     * @return Excel文件的字节数组
     * @throws IOException IO异常
     */
    byte[] exportToExcel(Integer evaluationYear) throws IOException;
}